Po Lu [Sat, 26 Feb 2022 12:25:51 +0000 (12:25 +0000)]
Ignore irrelevant button events on Haiku scroll bars
* src/haiku_support.cc (MouseDown): Ignore if there are too many
buttons pressed.
Po Lu [Sat, 26 Feb 2022 07:24:12 +0000 (07:24 +0000)]
Prevent crashes on event for removed scroll bar on Haiku
* src/haiku_support.cc (class EmacsScrollBar): Remove field
`scroll_bar'.
(ValueChanged, MouseDown, MouseUp, BScrollBar_make_for_view):
Adjust for changes.
* src/haiku_support.h (struct haiku_scroll_bar_value_event)
(struct haiku_scroll_bar_drag_event)
(struct haiku_scroll_bar_part_event): New field `window'.
* src/haikuterm.c (haiku_scroll_bar_from_widget): New function.
(haiku_read_socket): Adjust for changes in scroll bar event
structures.
Po Lu [Sat, 26 Feb 2022 07:06:55 +0000 (07:06 +0000)]
Fix reporting of horizontal scroll bar buttons on Haiku
* haikuterm.c (haiku_read_socket): Use correct values for scroll
bar buttons when the scroll bar is horizontal.
Po Lu [Sat, 26 Feb 2022 06:56:31 +0000 (06:56 +0000)]
Improve scroll bar button handling on Haiku
* src/haiku_io.c (haiku_len): Add `SCROLL_BAR_PART_EVENT'.
* src/haiku_support.cc (class EmacsScrollBar): New fields
`dragging' and `current_state', along with `old_value' and
`current_part'.
(EmacsScrollBar): Set horizontal flag to `horizontal_p'.
(MessageReceived): Set old_value when receiving
SCROLL_BAR_UPDATE message.
(ValueChanged): Don't allow scroll bar values to change while
dragging.
(MouseUp, MouseDown): Calculate button under mouse and act
accordingly.
* src/haiku_support.h (enum haiku_event_type): New event
`SCROLL_BAR_PART_EVENT'.
(enum haiku_scroll_bar_part): New enumerator.
(struct haiku_scroll_bar_part_event): New struct.
* src/haikuterm.c (haiku_read_socket): Handle
SCROLL_BAR_PART_EVENTs.
Stefan Kangas [Sat, 26 Feb 2022 05:32:26 +0000 (06:32 +0100)]
Merge from origin/emacs-28
ded89ed3fa * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): ...
Po Lu [Sat, 26 Feb 2022 00:54:36 +0000 (08:54 +0800)]
* src/xterm.c (handle_one_xevent): Set user time for xwidgets as well.
Dmitry Gutov [Sat, 26 Feb 2022 00:18:34 +0000 (02:18 +0200)]
Drop the visited file modtime check for remote xref hits
* lisp/progmodes/xref.el (xref--hits-remote-id): New variable.
(xref--convert-hits, xref--collect-matches)
(xref--find-file-buffer): Use it (bug#54025).
Paul Eggert [Fri, 25 Feb 2022 20:26:59 +0000 (12:26 -0800)]
Robustify merge-gnulib a bit
* admin/merge-gnulib: Fail if autogen.sh fails.
Remove autom4te.cache before running gnulib-tool.
Bob Rogers [Fri, 25 Feb 2022 12:03:20 +0000 (13:03 +0100)]
Add new file ietf-drums-date.el
* lisp/mail/ietf-drums-date.el: parse-time-string replacement which is
compatible but can be made stricter if desired.
* test/lisp/mail/ietf-drums-date-tests.el (added): Add tests for
ietf-drums-parse-date-string.
* lisp/mail/ietf-drums.el (ietf-drums-parse-date): Use
ietf-drums-parse-date-string.
Po Lu [Fri, 25 Feb 2022 11:36:07 +0000 (11:36 +0000)]
Improve treatment of dropping mouse track state on Haiku
* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New function.
(haiku_read_socket): Use it to find the appropriate frame when
handling motion or button events.
Michael Albinus [Fri, 25 Feb 2022 09:11:40 +0000 (10:11 +0100)]
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Adapt test.
Po Lu [Fri, 25 Feb 2022 08:05:11 +0000 (08:05 +0000)]
Improve tracking of modified regions on Haiku
* src/haiku_support.cc (class EmacsView): New field
`invalid_region'.
(FlipBuffers): Only invalidate that region.
(SetUpDoubleBuffering): Clear that region.
(BView_draw_lock): New parameters for denoting the region
to invalidate.
(BView_invalidate_region): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_set_background_color):
* src/haikumenu.c (digest_menu_items):
* src/haikuterm.c (haiku_clip_to_string):
(haiku_flip_buffers):
(haiku_clear_frame_area):
(haiku_clear_frame):
(haiku_draw_glyph_string):
(haiku_after_update_window_line):
(haiku_draw_window_cursor):
(haiku_draw_vertical_window_border):
(haiku_draw_window_divider):
(haiku_draw_fringe_bitmap):
(haiku_scroll_run):
(haiku_read_socket):
(haiku_flash):
(haiku_clear_under_internal_border): Mark appropriate region as
invalid before buffer flip.
Po Lu [Fri, 25 Feb 2022 06:20:14 +0000 (14:20 +0800)]
Fix calculation of scroll deltas when coalescing wheel events
* src/xterm.c (handle_one_xevent): Use accumulated values
instead of raw delta to determine scroll amounts.
Po Lu [Fri, 25 Feb 2022 06:15:51 +0000 (14:15 +0800)]
Make interpolated scrolling work above non-selected windows
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
parameter `old-window'.
(pixel-scroll-precision): Pass originally selected window to the
interpolation function.
Stefan Kangas [Fri, 25 Feb 2022 05:30:57 +0000 (06:30 +0100)]
Merge from origin/emacs-28
5c77aed2d6 Mention flyspell-prog-mode in flyspell-mode doc string
Jim Porter [Fri, 25 Feb 2022 02:18:27 +0000 (03:18 +0100)]
Fix Eshell process tests to (hopefully) work on all platforms
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
Fix test (bug#54136).
Dmitry Gutov [Fri, 25 Feb 2022 01:34:59 +0000 (03:34 +0200)]
xref--find-file-buffer: Check modified-p and modtime
* lisp/progmodes/xref.el (xref--find-file-buffer):
Check whether the buffer contents match what's on disk
(bug#54025).
Po Lu [Fri, 25 Feb 2022 00:40:51 +0000 (08:40 +0800)]
Set user time when receiving any wheel events
* src/xterm.c (handle_one_xevent): Set user time if the mouse
wheel moved.
Eli Zaretskii [Thu, 24 Feb 2022 20:02:28 +0000 (22:02 +0200)]
Fix esh-proc-tests on MS-Windows
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-background-process): Fix tests on MS-Windows.
Eli Zaretskii [Thu, 24 Feb 2022 19:57:34 +0000 (21:57 +0200)]
Make 't' in Buffer-menu be more defensive
* lisp/buff-menu.el (Buffer-menu-visit-tags-table): Verify that
the buffer holds a tags-table file before using it as such.
(Bug#54133)
Paul Eggert [Thu, 24 Feb 2022 18:12:50 +0000 (10:12 -0800)]
* admin/merge-gnulib: fix bare checkout (Bug#32452#65)
Alan Mackenzie [Thu, 24 Feb 2022 17:30:39 +0000 (17:30 +0000)]
Amend byte-run-strip-symbol-positions so that an unexec build builds
This fixes bug #54098.
* lisp/emacs-lisp/byte-run.el (byte-run--strip-list)
(byte-run--strip-vector/record): New functions. These alter a list or
vector/record structure only where a symbol with position gets replaced by a
bare symbol.
(byte-run-strip-symbol-positions): Reformulate to use the two new functions.
(function-put): No longer strip positions from the second and third arguments.
* lisp/emacs-lisp/bytecomp.el (byte-compile-out): Remove the senseless
"stripping" of putative symbol positions from OPERAND, which is nil or a
number.
Michael Albinus [Thu, 24 Feb 2022 15:11:01 +0000 (16:11 +0100)]
Fix symlinks in tramp-sshfs.el (Bug#54130)
* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
Add "-o transform_symlinks" to `tramp-mount-args'.
(tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-file-writable-p'.
(tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130)
* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
(tramp-test20-file-modes): Adapt tests.
Po Lu [Thu, 24 Feb 2022 12:01:39 +0000 (20:01 +0800)]
Check if WM support for NET_WM_USER_TIME_WINDOW changed during updates
* src/xterm.c (x_display_set_last_user_time): Update the user
time window if window manager support changed.
* src/xterm.h (struct x_display_info): New field
`last_user_check_time'.
Eli Zaretskii [Thu, 24 Feb 2022 11:07:16 +0000 (13:07 +0200)]
; * etc/NEWS: Fix wording of a recently added NEWS entry.
Jim Porter [Thu, 24 Feb 2022 04:43:38 +0000 (20:43 -0800)]
Don't superfluously emit prompts when terminating processes in Eshell
* lisp/eshell/esh-proc.el (eshell-kill-process-function): Only reset
the prompt if PROC is writing to the terminal.
(eshell-sentinel): Only write the exit message if PROC is writing to
the terminal (bug#54136).
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-pipeline-head)
(esh-proc-test/kill-background-process): New tests.
Lars Ingebrigtsen [Thu, 24 Feb 2022 09:10:40 +0000 (10:10 +0100)]
Mention flyspell-prog-mode in flyspell-mode doc string
* lisp/textmodes/flyspell.el (flyspell-mode): Mention
flyspell-prog-mode (bug#54131).
Stefan Kangas [Thu, 24 Feb 2022 05:30:36 +0000 (06:30 +0100)]
Merge from origin/emacs-28
5942504391 Reword face-remap-add-relative manual entry
Po Lu [Thu, 24 Feb 2022 03:58:41 +0000 (11:58 +0800)]
Set border colors through the toolkit
* src/xfns.c (x_set_border_pixel): Set colors through Xt to
avoid some problems.
Po Lu [Thu, 24 Feb 2022 03:35:25 +0000 (03:35 +0000)]
Fix auto-lower when the mouse moves onto a scrollbar on Haiku
* src/haiku_support.cc (MouseMoved):
(BView_inside_scroll_bar): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Don't auto-lower if the
pointer left the view for a scroll bar.
Po Lu [Thu, 24 Feb 2022 01:38:37 +0000 (09:38 +0800)]
Add support for _NET_WM_STATE_SHADED
* doc/lispref/frames.texi (Management Parameters): Document new
frame parameter `shaded'.
* etc/NEWS: Announce new frame parameter.
* src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame
parameter `shaded'.
(syms_of_frame): New symbol `shaded'.
* src/xfns.c (x_frame_parm_handlers): Install handler
`x_set_shaded'.
* src/xterm.c (x_set_shaded): New frame parameter handler.
(x_get_current_wm_state): New parameter `shaded'. All callers
changed.
(x_net_wm_state):
(x_handle_net_wm_state): Handle shaded state.
(x_term_init): Intern new atom `shaded'.
* src/xterm.h: Update prototypes.
Po Lu [Thu, 24 Feb 2022 01:11:53 +0000 (09:11 +0800)]
Condition out things specific to some versions of the input extension
* src/xterm.c (x_free_xi_devices, x_init_master_valuators)
(handle_one_xevent): Condition out code that isn't supposed to
be run on the current input extension version.
* src/xterm.h (struct xi_scroll_valuator_t): Make conditional on
HAVE_XINPUT2_1.
(struct xi_touch_point_t): Make conditional on HAVE_XINPUT2_2.
(struct xi_device_t): Make individual fields conditional on the
appropriate client-side input extension version.
Po Lu [Thu, 24 Feb 2022 00:43:09 +0000 (08:43 +0800)]
Fix the MS-DOS port
* msdos/sedlibmk.inp:
* src/conf_post.h [MSDOS]: Update for recent gnulib.
Paul Eggert [Wed, 23 Feb 2022 20:30:33 +0000 (12:30 -0800)]
Pacify gcc -Wanalyzer-null-dereference
* src/xdisp.c (normal_char_ascent_descent): Pacify GCC 11.2.1
20220127 (Red Hat 11.2.1-9) x86-64 -Wanalyzer-null-dereference.
Mauro Aranda [Wed, 23 Feb 2022 20:05:08 +0000 (21:05 +0100)]
Fix auth-sources defcustom
* lisp/auth-source.el (auth-sources): The extra attributes should be
in a plist, so inline both :host and :port. Also, give a valid
default value for the choice (bug#54127).
Paul Eggert [Wed, 23 Feb 2022 19:29:56 +0000 (11:29 -0800)]
Port pre-commit hook to Git 2.35.0
* build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of
sane_egrep (removed in Git 2.35.0).
Paul Eggert [Wed, 23 Feb 2022 19:23:05 +0000 (11:23 -0800)]
Port to current Gnulib some more
* admin/merge-gnulib: Remove lib/stdio-read.c and lib/stdio-write.c,
as Emacs doesn’t need these new Gnulib files.
Paul Eggert [Wed, 23 Feb 2022 19:11:52 +0000 (11:11 -0800)]
Update from Gnulib by running admin/merge-gnulib
Paul Eggert [Wed, 23 Feb 2022 18:52:27 +0000 (10:52 -0800)]
Port to current Gnulib
* configure.ac (AM_COND_IF): New macro, needed because Gnulib
normally assumes Automake and now uses this Automake macro.
Problem reported by Lars Ingebrigtsen (Bug#32452#47).
Juri Linkov [Wed, 23 Feb 2022 17:58:33 +0000 (19:58 +0200)]
* lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038).
* lisp/tab-bar.el (tab-bar-new-tab-choice): Replace the value 'nil'
with explicit 'clone'.
(tab-bar-move-window-to-tab): Ignore possible side/atom window
parameters with ignore-window-parameters while deleting window.
(tab-bar-new-tab-to): When 'tab-bar-new-tab-choice' is 'clone',
create new unique windows with the same layout using window-state-get
and window-state-put. Do the same after deleting other windows
when 'tab-bar-new-tab-choice' is 'window'.
(tab-bar-duplicate-tab): Replace the value 'nil' with 'clone' for
'tab-bar-new-tab-choice'.
Po Lu [Wed, 23 Feb 2022 13:51:31 +0000 (21:51 +0800)]
Expand commentary in xterm.c
* src/xterm.c: Expand commentary to include sections on optional
features and toolkit support.
Eli Zaretskii [Wed, 23 Feb 2022 13:07:59 +0000 (15:07 +0200)]
; * src/xterm.c: Minor fixes of the commentary.
Protesilaos Stavrou [Wed, 23 Feb 2022 07:42:40 +0000 (09:42 +0200)]
Update modus-themes to version 2.2.0
* doc/misc/modus-themes.org (Enable and load)
(Differences between loading and enabling): Clarify wording.
(Customization Options): Update sample configuration.
(Option for completion framework aesthetics): Refactor
'modus-themes-completions' to accept an alist value instead of a
symbol.
(Override colors): Elaborate on the example.
(Toggle themes without reloading them): Document sample command that
uses 'enable-theme' instead of 'load-theme'.
(Acknowledgements): Update names of contributors to ideas.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Tweak the palette's completion-related
background colors.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Deprecate faces and replace
them with 'modus-themes-completion-selection'.
(modus-themes-completion-key-binding): Rename it to
'modus-themes-key-binding'.
(modus-themes-mode-line): Remove faulty default value.
(modus-themes-completions): Refactor it to accept an alist value.
(modus-themes-box-buttons): Fix typo.
(modus-themes--standard-completions, modus-themes--extra-completions)
(modus-themes--extra-completions-line): Remove outdated private
functions.
(modus-themes--completion): Add new private function.
(modus-themes-faces): Update faces.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump file's version.
For a detailed change log, read:
<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.
Jim Porter [Mon, 21 Feb 2022 20:14:34 +0000 (12:14 -0800)]
Ignore 'eshell-broken-pipe' error in 'eshell-sentinel'
This can happen if 'eshell-sentinel' tries to write output to another
process, but that process has already terminated.
* lisp/eshell/esh-proc.el (eshell-sentinel): Use 'ignore-error'
instead of 'unwind-protect'.
Lars Ingebrigtsen [Wed, 23 Feb 2022 11:58:37 +0000 (12:58 +0100)]
Reword face-remap-add-relative manual entry
* doc/lispref/display.texi (Face Remapping): Clarify the
face-remap-add-relative (bug#54114).
Lars Ingebrigtsen [Wed, 23 Feb 2022 11:50:07 +0000 (12:50 +0100)]
Make face-remap-set-base work with a single face again
* lisp/face-remap.el (face-remap-set-base): Fix regression
introduced by
cece37cf09de9 (bug#46973).
Po Lu [Wed, 23 Feb 2022 10:11:29 +0000 (18:11 +0800)]
* src/xterm.c (x_term_init): Catch some errors from defective X servers.
Po Lu [Wed, 23 Feb 2022 07:13:23 +0000 (15:13 +0800)]
Improve input extension version checks on GTK 3
* src/xterm.c (x_term_init): If newer versions of XInput 2 don't
work, then look for an older one.
Stefan Kangas [Wed, 23 Feb 2022 05:36:45 +0000 (06:36 +0100)]
Merge from origin/emacs-28
3dfc8bff15 Fix indexing of module functions that return enumeration t...
86c0d9eb5f * doc/misc/transient.texi (Other Options): Fix a @ref. (B...
3b5e29eaa3 tramp.texi texinfo 4.13 compatibility
5edb9572ec Explain "Tramp" spelling in its manual
Po Lu [Wed, 23 Feb 2022 05:13:19 +0000 (13:13 +0800)]
Fix display corruption with background alpha set on unsupported display
* src/xfns.c (x_set_alpha_background): Make opaque if display
doesn't support the required features.
Stefan Monnier [Wed, 23 Feb 2022 03:52:40 +0000 (22:52 -0500)]
(add-hook): Fix regression
* lisp/subr.el (add-hook): When the hook has no local part yet, don't
set `local` to t, so we set the right part of the depth-sym.
(remove-hook): Don't modify the depth alist by side-effect since I'm
not completely sure it's safe.
Po Lu [Wed, 23 Feb 2022 03:40:11 +0000 (11:40 +0800)]
* src/xterm.c: Expand commentary.
Dmitry Gutov [Wed, 23 Feb 2022 01:53:05 +0000 (03:53 +0200)]
Unbreak project switcher when inside *xref* buffer
* lisp/progmodes/xref.el (xref--ensure-default-directory):
New function.
(xref--show-xref-buffer, xref-show-definitions-buffer-at-bottom):
Use it (bug#53626).
Po Lu [Wed, 23 Feb 2022 00:58:06 +0000 (08:58 +0800)]
* src/xterm.c (x_term_init): Don't catch errors too many times.
Po Lu [Wed, 23 Feb 2022 00:56:06 +0000 (08:56 +0800)]
Fix X errors caused by GTK using newer versions of XI2 than Emacs
* src/xterm.c (x_term_init): Handle errors from XIQueryVersion
caused by Emacs requesting versions of XI2 older than 2.2 and
what GTK requested.
Philipp Stephani [Tue, 22 Feb 2022 20:39:32 +0000 (21:39 +0100)]
Fix indexing of module functions that return enumeration types.
Return types that consist of more than one word need to be enclosed in
braces, see Info node `(texinfo) Typed Functions'. Otherwise they are
indexed incorrectly.
* doc/lispref/internals.texi (Module Misc, Module Nonlocal): Enclose
multi-word return types in braces.
Lars Ingebrigtsen [Tue, 22 Feb 2022 14:44:14 +0000 (15:44 +0100)]
Enable "Revert Buffer" if file has different writability
* lisp/menu-bar.el (menu-bar-file-menu): Enable "Revert Buffer" if
the file has different writability than the buffer (bug#17148).
Stefan Monnier [Tue, 22 Feb 2022 15:18:43 +0000 (10:18 -0500)]
(add-hook, remove-hook): Fix leaks (bug#48666)
* lisp/subr.el (add-hook, remove-hook): Rewrite the hook depth
management so we only keep the info relevant to functions present on
the hook.
Eli Zaretskii [Tue, 22 Feb 2022 14:37:22 +0000 (16:37 +0200)]
* doc/misc/transient.texi (Other Options): Fix a @ref. (Bug#54108)
Eli Zaretskii [Tue, 22 Feb 2022 14:32:49 +0000 (16:32 +0200)]
; * doc/lispref/modes.texi (Tabulated List Mode): Fix @xref.
Andrea Rossetti [Tue, 22 Feb 2022 14:22:50 +0000 (15:22 +0100)]
Improve ruler-mode dragging
* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column)
(ruler-mode-mouse-add-tab-stop, ruler-mode-mouse-del-tab-stop):
Adjust callers.
* lisp/ruler-mode.el (ruler-mode-window-col): Fix dragging when
stepping outside the header line (bug#17788).
Copyright-paperwork-exempt: yes
Glenn Morris [Tue, 22 Feb 2022 14:08:07 +0000 (14:08 +0000)]
tramp.texi texinfo 4.13 compatibility
* doc/misc/tramp.texi (Frequently Asked Questions):
Restore compatibility with Texinfo < 5.
Jeff Norden [Tue, 22 Feb 2022 13:51:47 +0000 (14:51 +0100)]
Make outline-blank-line into defcustom
* lisp/outline.el (outline-blank-line): Make into defcustom
(bug#54095).
Copyright-paperwork-exempt: yes
Michael Albinus [Tue, 22 Feb 2022 13:45:59 +0000 (14:45 +0100)]
Explain "Tramp" spelling in its manual
* doc/misc/tramp.texi (Frequently Asked Questions):
Explain "Tramp" spelling.
Lars Ingebrigtsen [Tue, 22 Feb 2022 13:43:35 +0000 (14:43 +0100)]
Don't signal an error on re-builder startup with rx syntax
* lisp/emacs-lisp/re-builder.el (reb-initialize-buffer): Make
startup with rx syntax not signal an error (bug#54107).
Po Lu [Tue, 22 Feb 2022 11:17:41 +0000 (19:17 +0800)]
; * src/xterm.h: Fix typo in recent change.
Po Lu [Tue, 22 Feb 2022 11:13:01 +0000 (19:13 +0800)]
Fix build on glibc <2.10
* src/alloc.c (Fmalloc_info): Only enable if glibc supports
malloc_info.
(syms_of_alloc): Likewise.
Po Lu [Tue, 22 Feb 2022 10:47:49 +0000 (18:47 +0800)]
Merge remote-tracking branch 'origin/master'
Po Lu [Tue, 22 Feb 2022 10:46:12 +0000 (18:46 +0800)]
Fix GTK build with GLib <2.44
* src/gtkutil.c (struct _EmacsMenuBar, EmacsMenuBar): New
structs.
(emacs_menu_bar_get_type): New function declaration.
* src/gtkutil.c: Remove declaration of EmacsMenuBar class.
Po Lu [Tue, 22 Feb 2022 10:41:28 +0000 (18:41 +0800)]
Improve XInput2 version checking
* configure.ac: Check for various important structures from all
versions of libXi.
* src/xfns.c (setup_xi_event_mask):
* src/xwidget.c (x_draw_xwidget_glyph_string):
* src/xterm.c (x_init_master_valuators, handle_one_xevent)
(x_term_init): Replace XI version checks based on protocol
headers with new constants.
* src/xterm.h (HAVE_XINPUT2_1, HAVE_XINPUT2_2, HAVE_XINPUT2_3)
(HAVE_XINPUT2_4): New definitions.
Michael Albinus [Tue, 22 Feb 2022 07:50:17 +0000 (08:50 +0100)]
* test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test.
Po Lu [Tue, 22 Feb 2022 06:10:29 +0000 (14:10 +0800)]
Fix duplicate wheel events on XI2
* src/xterm.c (handle_one_xevent): Don't generate wheel events
on XI_ButtonPress.
Po Lu [Tue, 22 Feb 2022 06:01:31 +0000 (14:01 +0800)]
Always send wheel events on XI2
* src/xterm.c (handle_one_xevent): Send emulated button events
as wheel events when handling XI2 button events.
Stefan Kangas [Tue, 22 Feb 2022 05:30:59 +0000 (06:30 +0100)]
Merge from origin/emacs-28
666e40a109 Fix 'display-line-numbers-mode' in hide-show buffers
68d134cf0f Don't check whether a deleted window is deletable (Bug#54028)
b38223a844 A friendlier error message from image-mode in an empty buffer
b7a651ba37 Update to Org 9.5.2-17-gea6b74
3a8c3f7abd ; Don't reference obsolete variables in edebug.el
Po Lu [Tue, 22 Feb 2022 03:35:27 +0000 (11:35 +0800)]
Improve momentum pixel scrolling on a non-selected window
* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New
argument `window'.
(pixel-scroll-start-momentum): Don't select the window under
the event when calculating velocity or redisplaying.
Po Lu [Tue, 22 Feb 2022 02:38:53 +0000 (10:38 +0800)]
Don't generate multibyte keystroke events if there is no actual text
* src/xterm.c (handle_one_xevent): Don't generate
MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero.
Lars Ingebrigtsen [Tue, 22 Feb 2022 02:32:52 +0000 (03:32 +0100)]
Add links to the vtable manual
* doc/lispref/modes.texi (Tabulated List Mode): Mention vtables.
* lisp/info-look.el (lambda): Link to vtables.
Lars Ingebrigtsen [Tue, 22 Feb 2022 02:18:13 +0000 (03:18 +0100)]
Remove the ELPA dependencies from test/Makefile.in
* test/Makefile.in: Remove the ELPA dependencies, because it's
pretty confusing when trying to debug things.
* test/README (SELECTOR): Remove mention of the now-removed
GNU_ELPA_DIRECTORY variable.
* test/lisp/net/ntlm-tests.el (push): Add the ELPA dependencies
here, which keeps it contained to one test file. This also fixes
bug#53586, since the obsoletion of `body' came from web-server.el.
Po Lu [Tue, 22 Feb 2022 01:33:56 +0000 (01:33 +0000)]
Don't pass invalid keyboard modifiers to the event loop on Haiku
* src/haikuterm.c (haiku_read_socket): Ensure validity of extra
keyboard modifiers.
Stefan Monnier [Mon, 21 Feb 2022 23:53:05 +0000 (18:53 -0500)]
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes
Stefan Monnier [Mon, 21 Feb 2022 22:22:38 +0000 (17:22 -0500)]
* lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034
Handle Git's output when deleting and creating empty files, as well as
when the diff is not shown because the file is considered as binary.
Eli Zaretskii [Mon, 21 Feb 2022 20:12:57 +0000 (22:12 +0200)]
Fix 'display-line-numbers-mode' in hide-show buffers
* src/xdisp.c (redisplay_internal): Disable redisplay
optimizations that consider just the current line, when
'display-line-numbers-mode' is turned on in the buffer.
(Bug#54091)
Lars Ingebrigtsen [Mon, 21 Feb 2022 18:19:55 +0000 (19:19 +0100)]
Improve vtable :keymap handling
* lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
Don't alter keymaps passed in, and respect parent keymaps.
Jim Porter [Wed, 2 Feb 2022 03:16:00 +0000 (19:16 -0800)]
Send SIGPIPE to external Eshell processes if their output target closes
* lisp/eshell/esh-io.el (eshell-pipe-broken): New error.
(eshell-output-object-to-target): Signal 'eshell-pipe-broken' if the
target is an exited/signaled process.
* lisp/eshell/esh-proc.el (eshell-insertion-filter): Handle
'eshell-pipe-broken'.
* test/lisp/eshell/esh-proc-tests.el: New test.
Jim Porter [Thu, 20 Jan 2022 05:57:38 +0000 (21:57 -0800)]
Ensure 'eshell-output-object' always returns nil for consistency
This prevents functions like 'eshell-print' from writing doubled
output when run in Eshell. Previously, the result would be:
~ $ eshell-print hi
hihi
* lisp/eshell/esh-io.el (eshell-output-object): Always return nil.
Jim Porter [Fri, 14 Jan 2022 02:58:50 +0000 (18:58 -0800)]
Improve docstrings for 'eshell-exec-lisp' and functions that call it
* lisp/eshell/esh-cmd.el (eshell-exec-lisp, eshell-apply*)
(eshell-funcall*, eshell-eval*, eshell-apply, eshell-eval)
(eshell-funcall, eshell-applyn, eshell-funcalln, eshell-evaln):
Improve docstrings.
Jim Porter [Sun, 30 Jan 2022 01:28:23 +0000 (17:28 -0800)]
; * lisp/eshell/esh-io.el (grep-null-device): Remove unused defvar.
Eli Zaretskii [Mon, 21 Feb 2022 17:01:14 +0000 (19:01 +0200)]
Revert "Remove PROBLEMS section on double-buffering"
This reverts commit
366b2bc757d011f96693bd219877c5aa42fa3359.
We cannot be sure this problem is no longer relevant, since
its root cause was in software we don't control, and cannot
tell whether any of the versions where that problem happened
are still out in the wild.
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:16:44 +0000 (17:16 +0100)]
Clarify Special Isearch slightly
* doc/emacs/search.texi (Special Isearch): Clarify slightly
(bug#19924). (All the keys in this node is about what happens
during isearch, but that information is quite a ways away at this
point, so it doesn't hurt to repeat that info.)
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:04:01 +0000 (17:04 +0100)]
Remove PROBLEMS section on double-buffering
* etc/PROBLEMS: Remove section on problems with double-buffering,
as apparently it's now no longer an issue (bug#30088).
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:01:13 +0000 (17:01 +0100)]
Make 'ispell-change-dictionary' completion work better
* lisp/textmodes/ispell.el (ispell--aspell-found-dictionaries):
New variable (bug#24050).
(ispell-find-aspell-dictionaries): Save the list of actually
identified dictionary.
(ispell-valid-dictionary-list): Use it to filter out non-installed
dictionaries.
Martin Rudalics [Mon, 21 Feb 2022 15:46:23 +0000 (16:46 +0100)]
Don't check whether a deleted window is deletable (Bug#54028)
* lisp/window.el (window-state-put): Make sure window is live
before calling 'window-deletable-p' on it (Bug#54028).
Lars Ingebrigtsen [Mon, 21 Feb 2022 14:42:59 +0000 (15:42 +0100)]
Make `next-buffer' order reflect command line file order
* lisp/startup.el (command-line-1): Make `next-buffer' order
reflect the command line file order (bug#21505).
Eli Zaretskii [Mon, 21 Feb 2022 12:51:37 +0000 (14:51 +0200)]
A friendlier error message from image-mode in an empty buffer
* lisp/image-mode.el (image-mode): Handle the case where the empty
buffer doesn't visit a file (Bug#54084)
Po Lu [Mon, 21 Feb 2022 11:40:28 +0000 (19:40 +0800)]
Try to fix bug#54051
* src/xterm.c (handle_one_xevent): Don't give obviously bogus
configure events to Xt.
Po Lu [Mon, 21 Feb 2022 07:42:01 +0000 (07:42 +0000)]
Prevent Haiku display from being opened multiple times
* src/haikufns.c (Fx_open_connection): Return if display
connection already exists.
Po Lu [Mon, 21 Feb 2022 06:29:58 +0000 (14:29 +0800)]
Prevent GTK from setting unreasonable size hints with large menu bars
* src/gtkutil.c (struct _EmacsMenuBar): New struct.
(emacs_menu_bar_init):
(emacs_menu_bar_class_init):
(emacs_menu_bar_get_preferred_width):
(emacs_menu_bar_new): New functions.
(xg_update_menu_item): Use our own menu bar class on GTK 3.
* src/gtkutil.h (EmacsMenuBar): New class.
Po Lu [Mon, 21 Feb 2022 03:27:48 +0000 (03:27 +0000)]
Implement left-right separators for dialog boxes on Haiku
* src/haiku_support.cc (BAlert_set_offset_spacing): New
function.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (struct submenu_stack_cell): Remove unused
struct.
(haiku_dialog_show): Use offset spacing if a left-right boundary
was seen and make sure the user can always quit a dialog if no
enabled items exist.
Dmitry Gutov [Mon, 21 Feb 2022 02:15:39 +0000 (04:15 +0200)]
Bump xref.el version.
* lisp/progmodes/xref.el: Bump version to 1.4.0.
Dmitry Gutov [Mon, 21 Feb 2022 01:09:32 +0000 (03:09 +0200)]
Public-ize xref-show-xrefs
* lisp/progmodes/xref.el (xref-show-xrefs):
New function (wrapper for an older, private one, bug#42967).